package com.mewp.permissions.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.mewp.permissions.model.po.SysMenu;
import com.mewp.permissions.model.vo.AssginMenuVo;
import com.mewp.permissions.model.vo.RouterVO;

import java.util.List;

/**
 * @author mewp
 * @description 针对表【sys_menu(菜单表)】的数据库操作Service
 * @createDate 2023-07-28 12:12:56
 */
public interface SysMenuService extends IService<SysMenu> {

    /**
     * 菜单树形结构
     *
     * @return 菜单结构
     */
    List<SysMenu> findNodes();

    /**
     * 根据角色获取授权权限数据
     *
     * @param roleId 角色Id
     * @return 权限信息
     */
    List<SysMenu> findMenuByRoleId(Long roleId);

    /**
     * 保存角色权限
     *
     * @param assetsMenuVo 权限信息
     * @return true/false
     */
    boolean doAssign(AssginMenuVo assetsMenuVo);

    /**
     * 获取用户菜单权限列表
     *
     * @param userId 用户Id
     * @return 权限列表
     */
    List<RouterVO> getUserMenuList(Long userId);

    /**
     * 获取用户按钮权限列表
     *
     * @param userId 用户Id
     * @return 权限列表
     */
    List<String> getUserButtonList(Long userId);
}
